import request from '@/utils/request'

// 查询用户列表
export function listUser(query) {
  return request({
    url: '/getAllUsers',
    method: 'get',
    params: query
  })
}

// 查询用户详细
export function getUser(userId) {
  return request({
    url: `/api/users/${userId}`,
    method: 'get'
  })
}

// 新增用户
export function addUser(data) {
  return request({
    url: '/addUser',
    method: 'post',
    data: data
  })
}

// 修改用户
export function updateUser(data) {
  return request({
    url: '/api/users',
    method: 'put',
    data
  })
}

// 删除用户
export function deleteUser(userId) {
  return request({
    url: '/deleteUser/' + userId,
    method: 'get'
  })
}

// 批量删除用户
export function batchDeleteUser(userIds) {
  return request({
    url: '/batchDeleteUser/' + userIds,
    method: 'get'
  })
}

// 导出用户
export function exportUser(query) {
  return request({
    url: '/exportUser',
    method: 'get',
    params: query,
    responseType: 'blob'
  })
}

// 前台用户登录
export function login(data) {
  return request({
    url: '/api/auth/login',
    method: 'post',
    data
  })
}

// 前台用户注册
export function register(data) {
  return request({
    url: '/api/auth/register',
    method: 'post',
    data
  })
}

// 前台用户退出
export function logout() {
  return request({
    url: '/api/auth/logout',
    method: 'post'
  })
}

// 获取验证码
export function getVerifyCode(phone) {
  return request({
    url: `/api/auth/verifyCode/${phone}`,
    method: 'get'
  })
}

// 重置密码
export function resetPassword(data) {
  return request({
    url: '/api/auth/resetPassword',
    method: 'post',
    data
  })
}

// 获取用户信息
export function getUserInfo() {
  return request({
    url: '/api/user/info',
    method: 'get'
  })
}

// 修改用户密码
export function changePassword(data) {
  return request({
    url: '/api/users/password',
    method: 'put',
    data
  })
}

// 更新用户信息
export function updateUserInfo(data) {
  return request({
    url: '/api/user/update',
    method: 'put',
    data
  })
}

// 更新密码
export function updatePassword(data) {
  return request({
    url: '/api/user/password',
    method: 'put',
    data
  })
}

// 上传头像
export function uploadAvatar(data) {
  return request({
    url: '/api/users/avatar',
    method: 'post',
    data,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

// 创建临时用户并预约
export function createGuestUserAndAppointment(data) {
  // 确保数据格式正确
  const formattedData = {
    ...data,
    carId: data.carId ? Number(data.carId) : null,
    dealerId: data.dealerId ? Number(data.dealerId) : null,
    // 确保日期格式符合后端要求
    appointmentTime: data.appointmentTime || null
  };
  
  console.log('格式化后的临时预约数据:', formattedData);
  
  return request({
    url: '/api/users/guest-appointment',
    method: 'post',
    data: formattedData,
    // 添加超时设置
    timeout: 30000,
    // 添加响应类型
    responseType: 'json',
    // 确保请求头包含正确的Content-Type
    headers: {
      'Content-Type': 'application/json'
    }
  }).then(response => {
    console.log('临时用户预约成功响应:', response);
    return response;
  }).catch(error => {
    console.error('临时用户预约失败:', error);
    throw error;
  });
} 